【Python深度学习前传】用NumPy获取数组的值、分片以及改变数组的维度

您所在的位置:网站首页 python numpy数组操作 【Python深度学习前传】用NumPy获取数组的值、分片以及改变数组的维度

【Python深度学习前传】用NumPy获取数组的值、分片以及改变数组的维度

2023-03-21 07:52| 来源: 网络整理| 查看: 265

1. 获取数组值和数组的分片

NumPy数组也指出与Python列表相同的操作,例如,通过索引获得数组值,分片等。

下面的例子演示了如何通过索引获得NumPy数组的值,以及对NumPy数组使用分片操作。

from numpy import * # 定义一个二维的NumPy数组 a = array([[1,2,3],[4,5,6],[7,8,9]]) # 输出数组a的第1行第1列的值,运行结果:1 print(a[0,0]) # 运行结果:a[0,1] = 2, a[2,1] = 8 print("a[0,1] = {}, a[2,1] = {}".format(a[0,1],a[2,1])) # 分片操作,将3*3的二维数组变成1*3的二维数组,运行结果:[[1 2 3]] print(a[0:1]) # 分片操作,获取1*3的二维数组的第1行的值,运行结果:[1 2 3] print(a[0:1][0]) # 分片操作,将3*3二维数组变成2*3的二维数组 print(a[0:2]) b = a[0:] # 分片操作,b与a的值是相同的 print(a) # 分片操作,步长是2 print(a[0::2]) # 与a[0:2]的结果相同 print(a[-3:-1])

程序运行结果如图1所示。

图1 数组的索引和分片操作

2. 改变数组的维度

处理数组的一项重要工作就是改变数组的维度,包括提高数组的维度和降低数组的维度,还包括数组的转置。NumPy提供大量的API可以很轻松地完成这些数组的操作。例如,通过reshape方法可以将一维数组变成二维、三维或者多为数组。通过ravel方法或flatten方法可以将多维数组变成一维数组。改变数组的维度还可以直接设置NumPy数组的shape属性(元组类型),通过resize方法也可以改变数组的维度。通过transpose方法可以对数组进行转置。本节将介绍NumPy中与数组维度相关的常用API的使用方法。

下面的例子演示了如何利用NumPy中的API对数组进行维度操作。

from numpy import * b = arange(24).reshape(2,3,4) # 将一维数组变成三维数组 print(b) print('------------------') # 将三维数组变成一维数组 b1 = b.ravel() print(b1) print('------------------') # 将三维数组变成一维数组 b2 = b.flatten() print(b2) print('------------------') # 将三维数组变成二维数组(6行4列) b.shape = (6,4) print(b) print('------------------') # 数组转置 b3 = b.transpose() print(b3) print('------------------') # 将三维数组变成二维数组(2行12列) b.resize((2,12)) print(b)

程序运行结果如图2所示。

图2 改变数组的维度

- EOF -



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3